<?php defined('SYSPATH') or die('No direct script access.');

class Helper_Index
{   
    public static function reviews($reviews)
    {
        $content = new View('index/model/_reviews_tpl');
        $content->reviews = $reviews;
        return $content;    
    }
    
    public static function reviews_details($model)
    {
        $content = new View('index/model/_reviews_details_tpl');
        $content->model = $model;
        return $content;    
    }
    
    public static function big_rating($model)
    {
        $content = new View('index/model/_big_rating_tpl');
        $content->model = $model;
        return $content;    
    }
    
    public static function coupons_list($coupons, $shops)
    {
        $content = new View('index/coupon/_coupons_list_tpl');
        $content->coupons  = $coupons;
        $content->shops    = $shops;
        return $content;        
    }
    
    public static function go_coupon_url($coupon) {
        return '/coupon/go/'.$coupon->id.'/';
    }
    
    public static function coupon_url($coupon, $shop) {
         if (is_array($shop)) {
            $url = $shop['url'];    
        } else {
            $url = $shop->url;   
        }
        return '/coupon/'.$url.'/'.Model_Main::translit($coupon->name).'_'.$coupon->id.'/';
    }
    
    public static function shop_url($shop) {
        if (is_array($shop)) {
            $url = '/coupon/'.$shop['url'].'/';    
        } else {
            $url = '/coupon/'.$shop->url.'/';   
        }
        return $url;
    }
    
    public static function shop_logo($shop) {
        if (is_array($shop)) {
            $url = $shop['url'];    
        } else {
            $url = $shop->url;   
        }
        return '/media/uploads/shops/logo-'.$url.'.jpg'; 
    }
    
    public static function date($date)
    {
        $d = date('d', $date);
        $m = date('m', $date);
        $y = date('Y', $date);
        
        $months = array(
            '01' => 'января',
            '02' => 'февраля',
            '03' => 'марта',
            '04' => 'апреля',
            '05' => 'мая',
            '06' => 'июня',
            '07' => 'июля',
            '08' => 'августа',
            '09' => 'сентября',
            '10' => 'октября',
            '11' => 'ноября',
            '12' => 'декабря',
        );
        
        return $d . ' ' . $months[$m] . ' ' . $y;
    }
    
    public static function get_medium_share_buttons()
    {
        $code = <<<CODE
<script type="text/javascript">(function() {
  if (window.pluso) if (typeof window.pluso.start == "function") return;
  var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
  s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
  s.src = ('https:' == window.location.protocol ? 'https' : 'http')  + '://share.pluso.ru/pluso-like.js';
  var h=d[g]('head')[0] || d[g]('body')[0];
  h.appendChild(s);
})()
</script>
<div data-user="1705339630" class="pluso" data-background="none;" data-options="medium,square,line,horizontal,counter,sepcounter=1,theme=14" data-services="vkontakte,odnoklassniki,facebook,twitter,google,moimir,email"></div>
CODE;
        return '<div class="medium-social-buttons">'.$code.'</div>';
    }
    
    public static function get_big_share_buttons()
    {
        $code = <<<CODE
<script type="text/javascript">(function() {
  if (window.pluso) if (typeof window.pluso.start == "function") return;
  var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
  s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
  s.src = ('https:' == window.location.protocol ? 'https' : 'http')  + '://share.pluso.ru/pluso-like.js';
  var h=d[g]('head')[0] || d[g]('body')[0];
  h.appendChild(s);
})()
</script>
<div data-user="1705339630" class="pluso" data-background="none;" data-options="big,square,line,horizontal,counter,sepcounter=1,theme=14" data-services="vkontakte,odnoklassniki,facebook,twitter,google,moimir,email"></div>
CODE;
        return '<div class="big-social-buttons"><span>Понравилась страничка? Расскажите о ней своим друзьям!</span><div class="buttons">'.$code.'</div></div>';   
    }
    
    public static function get_comments()
    {
        $app_id = 3850381;
        if (!Model_Main::is_production_host()) {
            $app_id = 3850384;    
        }
        
        $code = <<<CODE
<script type="text/javascript">
  VK.init({apiId: {$app_id}, onlyWidgets: true});
</script>

<!-- Put this div tag to the place, where the Comments block will be -->
<div id="vk_comments"></div>
<script type="text/javascript">
VK.Widgets.Comments("vk_comments", {limit: 20, width: "1000", attach: "*"});
</script>   
CODE;
        return $code;
    }
    
    public static function pagination($page, $per_page, $count, $url, $first_url, $sort = null, $params = null)
    {
        if (ceil($count / $per_page) <= 1) {
            return '';
        }
        $content = new View('index/_pagination_tpl');
        $content->page     = $page;
        $content->per_page = $per_page;
        $content->count    = $count;
        $content->url      = $url;
        $content->first_url = $first_url;
        $content->sort     = $sort;
        if ($params) {
            $empty = true;
            foreach ($params as &$param) {
                if (is_null($param)) {
                    $param = '';    
                } else {
                    $empty = false;    
                }   
            }
            if ($empty) {
                $params = null;    
            }
        }
        $content->params   = $params;
        return $content;   
    }
    
    public static function anchor_text($text)
    {
        $n = mt_rand(0, 2);
        if ($n == 0) {
            return $text . ' отзывы';
        } else if ($n == 1) {
            return 'Отзывы о ' . $text;
        }
        return $text;
    } 
    
    public static function top_menu()
    {
        $content = new View('index/_top_menu_tpl');
        $content->categories = ORM::factory('category')->get_categories_tree();
        return $content;   
    }
    
    public static function format_int($value)
    {
        return number_format((int)$value, 0, '', ' ');
    }
    
    /**
    *  Множественное число
    *
    * @param int $howmuch
    * @param array $input Например: [0] - комментарий, [1] - комментария, [2] - комментариев
    * @return string
    */
    public static function plural_form($howmuch, array $input) {
        $howmuch = (int)$howmuch;
        $l2 = substr($howmuch,-2);
        $l1 = substr($howmuch,-1);
        if($l2 > 10 && $l2 < 20) return $input[2];
        else
        switch ($l1) {
            case 0: return $input[2]; break;
            case 1: return $input[0]; break;
            case 2: case 3: case 4: return $input[1]; break;
            default: return $input[2]; break;
        }
        return false;
    }
    
    public static function get_coupon_description($coupon, $shop, $cut = false)
    {
        if (is_array($shop)) {
            $shop_name = $shop['name'];    
        } else {
            $shop_name = $shop->name;   
        }
        
        $id = $coupon->id;
        $desc = '<p>Бесплатный <a href="'.Helper_Index::shop_url($shop).'">'.Model_Main::rand_phrase(array('промокод', 'промокод', 'купон'), $id).' '.$shop_name.'</a> "'.str_replace(array('!', '.'), array('', ','), $coupon->name).'" '.
                Model_Main::rand_phrase(array('обеспечивает', 'предоставляет', 'дает'), $id).' '.Model_Main::rand_phrase(array('выгодную', 'отличную'), $id).' скидку '.Model_Main::rand_phrase(array('всем', 'каждому', 'любому'), $id).', '.
                'кто '.Model_Main::rand_phrase(array('посетит', 'зайдет на', 'посмотрит'), $id).' наш '.Model_Main::rand_phrase(array('интернет ресурс', 'ресурс', 'сайт', 'сайт promotnx.ru', 'сайт купонов и промокодов', 'сайт промокодов и скидок'), $id).' '.
                'и '.Model_Main::rand_phrase(array('активирует', 'введет', 'использует'), $id).' '.Model_Main::rand_phrase(array('полученный', 'данный'), $id).' '.Model_Main::rand_phrase(array('промокод', 'код', 'купон'), $id).' '.
                'на сайте '.Model_Main::rand_phrase(array('интернет-магазина', 'магазина'), $id).' '.$shop_name.'. </p>';

        $desc .= '<p>Для '.Model_Main::rand_phrase(array('активации', 'ввода', 'использования'), $id).' '.Model_Main::rand_phrase(array('данного', 'представленного', 'этого'), $id).' '.Model_Main::rand_phrase(array('промокода', 'кода', 'купона'), $id).' '.
                'перейдите из корзины на страницу оформления заказа и введите '.Model_Main::rand_phrase(array('промокод', 'код', 'купон'), $id).' в соответсвующее поле. </p>';

        $desc .= '<p>'.Model_Main::rand_phrase(array('Активировав', 'Введя', 'Использовав', 'Применив'), $id).' полученный <a href="'.Helper_Index::shop_url($shop).'">'.Model_Main::rand_phrase(array('промокод', 'промокод', 'купон'), $id).' '.$shop_name.'</a>, Вы сможете '.Model_Main::rand_phrase(array('купить', 'приобрести'), $id).' '.
                Model_Main::rand_phrase(array('широкий', 'большой'), $id).' '.Model_Main::rand_phrase(array('спектр', 'ассортимент'), $id).' товаров, на которые действует заявленная скидка. </p>';    
                
        $desc .= '<p>'.Model_Main::rand_phrase(array('Приобретите', 'Купите'), $id).' '.Model_Main::rand_phrase(array('необходимые', 'нужные'), $id).' '.Model_Main::rand_phrase(array('товары', 'вещи'), $id).' с '.Model_Main::rand_phrase(array('приятной', 'большой'), $id).' скидкой!</p>';
        
        $desc .= '<p>Спасибо за использование нашего сайта!</p>';
        
        if ($cut) {
            $desc = mb_substr(strip_tags($desc), 0, 200).'...';
        }
        return $desc;
    }
    
    public static function get_product_index_description($product)
    {
        return 'Купите '.$product->name.' за '.$product->price.' руб. Возможны выгодные скидки!';
    }
    
    public static function get_category_index_description($category, $brand = null)
    {
        $text = $category->name;
        if ($brand) {
            $text .= ' '.$brand->name;    
        }
        $text .= '. Огромный выбор товаров изо всех магазинов одежды и обуви. Вы подберете себе красивую и нужную вещь';
        return $text;
    }
    
    public static function get_product_index_text($product, $category)
    {
        $text = '<p>У нас вы сможете купить '.$product->name.' за '.$product->price.' рублей. В колонке справа мы постарались подобрать товары, которые также должны вам понравиться.</p>'.
        '<p>Возможно скорое появление скидок на <a href="'.self::category_url($category).'">'.mb_strtolower($category->name).'</a>';
        if ($product->brand_id) {
            $brand = ORM::factory('brand', $product->brand_id);
            $text .= ' или <a href="'.self::category_url($category, $brand).'">'.mb_strtolower($category->name).' '.$brand->name.'</a>';    
        }
        $text .= ', так что не пропустите.</p>';
        return $text;
    } 
    
    public static function get_category_index_text($category, $brand)
    {
        $text = 'Купите '.mb_strtolower($category->name);
        if ($brand) {
            $text .= ' '.$brand->name;        
        }
        $text .= ' в нашем интернет-магазине.';
        return $text;
    } 
} 
